package programs.expression.superClasses;

import java.util.Set;

import programs.expression.implementedClasses.Variable;
import game.Ship;

public abstract class Expression 
{
	private Ship executer;
	
	public Expression() {
		
	}	
	public abstract Set<Variable> getVariables();
	
	public abstract Object getValue();
	
	public abstract ExpressionType getReturnType();
	
	public abstract boolean isValidExpression();
	
	public abstract Expression assignGlobalVariable(Variable variable);
	
	public void setExecuter(Ship executer) {
		this.executer = executer;
	}
	
	public Ship getExecuter() {
		return this.executer;
	}
}
